import Vue from 'vue';
import { getAntiWeightToken } from '@http/api.js';

const install = () => {
  Vue.prototype.addTestArray = async function (option) {
    if (window.testArray && (await isOpen())) {
      console.log('addTestArray');
      window.testArray.push(option);
    }
  };
  async function isOpen() {
    try {
      let antiToken = window.sessionStorage.getItem('antiToken');
      // 如果有token
      if (antiToken) {
        let objToken = JSON.parse(antiToken);
        // 如果token还没过期，直接用
        if (objToken.time && new Date().getTime() - Number(objToken.time) <= 1 * 60 * 1000) {
          return objToken.token;
        } else {
          // 如果过期了，请求后台
          return await getToken();
        }
      } else {
        // 压根就没token，直接请求后台
        return await getToken();
      }
    } catch (error) {
      // 报错都是返回false
      return false;
    }
  }
  async function getToken() {
    let res = await getAntiWeightToken();
    let { code, data } = res.data;
    if (code == 200) {
      let obj = {
        time: new Date().getTime(),
        token: isNaN(Number(data.slice(0, 1))) ? true : false,
      };
      window.sessionStorage.setItem('antiToken', JSON.stringify(obj));
      console.log('obj.token', obj.token);
      return obj.token;
    } else {
      // 报错都是返回false
      return false;
    }
  }
};

export default install;
